#!/bin/sh
# SPDX-License-Identifier: LGPL-2.1-or-later

if [ "$1" = "final" ]; then
    if command -v bootctl >/dev/null && [ -d "/efi" ]; then
        bootctl install
    fi

    cat >>/root/.gdbinit <<EOF
set debuginfod enabled off
set build-id-verbose 0
EOF

    if [ -n "$SANITIZERS" ]; then
        # ASAN and syscall filters aren't compatible with each other.
        find / -name '*.service' -type f -exec sed -i 's/^\(MemoryDeny\|SystemCall\)/# \1/' {} +

        # `systemd-hwdb update` takes > 50s when built with sanitizers so let's not run it by default.
        systemctl mask systemd-hwdb-update.service
    fi

    # Make sure dnsmasq.service doesn't start on boot on Debian/Ubuntu.
    rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
fi

# Temporary workaround until https://github.com/openSUSE/suse-module-tools/commit/158643414ddb8d8208016a5f03a4484d58944d7a
# gets into OpenSUSE repos
if [ "$1" = "final" ] && grep -q openSUSE /etc/os-release; then
    if [ -e "/usr/lib/systemd/system/boot-sysctl.service" ] && \
       ! grep -F -q 'ConditionPathExists=/boot/sysctl.conf' "/usr/lib/systemd/system/boot-sysctl.service"; then
        mkdir -p "/etc/systemd/system/boot-sysctl.service.d/"
        printf '[Unit]\nConditionPathExists=/boot/sysctl.conf-%%v' >"/etc/systemd/system/boot-sysctl.service.d/99-temporary-workaround.conf"
    fi
fi
